#include "State.h"
#include "AI Character.h"

/*	This will be the normal state for an AI_Character. When it is threatened (or the player comes near)
	it will switch to the offensive state. So far as I know now... */

class Docile : public State<AI_Character>
{
private:
	Docile() {}
	Docile(const Docile&);
	Docile& operator=(const Docile&);

public:
	// this is a singleton
	static Docile* Instance();

	virtual void Enter(AI_Character* ai);

	virtual void Execute(AI_Character* ai);

	virtual void Exit(AI_Character* ai);

	virtual bool OnMessage(AI_Character* receiver, const Message& msg);
};

class Offensive : public State<AI_Character>
{
private:
	Offensive() {}
	Offensive(const Offensive&);
	Offensive& operator=(const Offensive&);

public:
	// This is a singleton
	static Offensive* Instance();

	virtual void Enter(AI_Character* ai);

	virtual	void Execute(AI_Character* ai);

	virtual void Exit(AI_Character* ai);

};





	